package com.encrypt;

import com.encrypt.util.ByteToString;

import java.security.MessageDigest;

/**
 * Created by huangyugen on 2019/04/28
 * 典型消息摘要算法
 **/
public class Md5Coder {

    /**
     * md5加密算法
     * @param  originString
     * @return
     */
    public static String encode(String originString){
        if (originString != null){
            try{
                //创建具有指定算法名称的信息摘要
                MessageDigest md = MessageDigest.getInstance("MD5");
                //使用指定的字节数组对摘要进行最后更新，然后完成摘要计算
                byte[] results = md.digest(originString.getBytes());
                //将得到的字节数组变成字符串返回
                String resultString = ByteToString.byteArrayToHexString(results);
                return resultString;
            } catch(Exception ex){
                ex.printStackTrace();
            }
        }
        return null;
    }


    public static void main(String[] args) {
        String data = "Java加密与解密的艺术";
        System.out.println("【原 文】："+data);
        String encode = Md5Coder.encode(data);
        System.out.println("【编码后】："+encode);
    }
}
